home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / rpg / crossfir.92 / crossfir / crossfire-0.92.5 / CHANGES next >
Text File  |  1996-07-24  |  75KB  |  1,609 lines

  1. Changes from Crossfire 0.92.4 to 0.92.5:
  2.  
  3. Som bug fixes made dealing with cursed improvement potions.
  4.  
  5. Always let players learn spells if they are in their starting spellbook.
  6.  
  7. New attack methodology put in palce.  To put in simply, if there is
  8. only 1 attacktype, things remain the same.  If there are multiple attacktypes,
  9. we cycle through them one by one, and take the one that does the best
  10. damage and use it.  Some attacktypes no longer do damage - they are effects
  11. (ie, paralyzation, slow.)  In the case of of these, the effect will always
  12. be applied if appropriate.  Code looks to behave pretty much the same,
  13. but is easier to follow.  IF new code is buggy, or you don't want it, 
  14. there is a define at the top of attack.c you can change.
  15.  
  16. If god blesses you, lets actually remove the depletion object from the
  17. player inventory.
  18.  
  19. Other god related fixes put in place - look to also deal with blessed
  20. weapons.
  21.  
  22. Additional dump flag added.
  23.  
  24. fix bugs with USE_BUTTONS and the peaceful button.
  25.  
  26. Only allow write_rune to use objects of type RUNE
  27.  
  28. Bugfix in get_pointed_target if it can't find a target - prevents endless
  29. loop
  30.  
  31. NRSPELLPATHS set to correct value.
  32.  
  33. Remove null terminator from gods array - not needed anymore.
  34.  
  35. Fix savethrow array size to match maxlevel properly (was 1 short)
  36.  
  37. remove damnation and remove curse now cleric spells.
  38.  
  39. Fix some header code to better work on solaris 2.5
  40.  
  41. Support for compilation with the dmalloc (debug malloc) package.
  42.  
  43. Allow altars and related items to match objects based on type.  Use hp
  44. field of altar object as the type to match.
  45.  
  46. Library patch by Brian Thomas.
  47.  
  48. Various skill fixes by Brian Thomas.
  49.  
  50. Alchemy patch by Brian Thomas.  Here is a copy of his README:
  51. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
  52.         The amount of work I put into this was substantial; other than
  53.         new code -- I created new archetypes, revised archetypes, altered the
  54.         treasures file and created 2 new object types and a flag.
  55.  
  56.         It therefore may be enjoyable to install this patch (incl code)
  57.         and *not* define ALCHEMY in define.h. In particular, this patch
  58.         does the following things:
  59.  
  60.          1) more varieties of potions are available in shops.
  61.  
  62.          2) new gems and types of food.
  63.  
  64.          3) monsters will now leave behind body parts when you kill them.
  65.  
  66.          4) if ALCHEMY is defined players may make potions/artifacts.
  67.  
  68.         I have included instructions for installation in INSTALL.PATCH,
  69.         and a brief document for using the code (Alchemy.doc). 
  70.  
  71.         Finally, as always, feedback is appreciated.
  72.  
  73.                                                 b.t.
  74.                                                 thomas@astro.psu.edu
  75. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
  76.  
  77.  
  78.  
  79. ------------------------------------------------------------------------------
  80. Changes from Crossfire 0.92.3 to 0.92.4:
  81.  
  82. Various bug fixes to readable code.
  83.  
  84. Let altars be able to cast spells.  sp field determine what spell to cast.
  85.  
  86. Fix obscure bug that an arrow can be 'killed' if a monster that has hitback
  87. moves onto it while it is moving.  Thus would then cause problems because
  88. apply would try to remove the object after it had been killed.
  89.  
  90. Give quetzalcoatl melee attack skill.
  91.  
  92. Give experience for clawing attacks.
  93.  
  94. Include literacy skill with fighter skill - this should now give all starting
  95. classes literacy skill.  I think it improves play balance.
  96.  
  97. Don't mark a players starting money as being start equipment - otherwise
  98. they can't drop it on identify altars and it can get merged with money
  99. gained at a later date, yet still be marked as starting equipment.
  100.  
  101. Bug fix in keybindings so that we check return of XKeysymToString to make
  102. sure we don't use a null value.  Some keyboards have keys with no names,
  103. and on some systems, passing a null pointer as a string causes it to crash.
  104.  
  105. ------------------------------------------------------------------------------
  106. Changes from Crossfire 0.92.2 to 0.92.3:
  107.  
  108. Removed ability to use unpaid objects for sacrifices.
  109.  
  110. Changed weapon improvement code to be based on skill levels (if skills
  111. are used.)
  112.  
  113. Code in place to generate hit points by average of fighter and overall
  114. level - to enable this, change the #if 0 to #if 1 at around line 1040
  115. in common/living.c
  116.  
  117. Books hack by Brian Thomas.  This mainly means that when emptry books are
  118. created (or are otherwise on the map), that they will be filled with some type
  119. of information.  Some (like monster/spells/gods/artifacts) are generated via
  120. the program itself.  Information from a messages file that is stored in lib
  121. can also be found.  Experience can be gained by reading this information.
  122.  
  123. Read/write patch by Brian Thomas.  This mainly encompasses the fact that
  124. players can now write messages in books, that you must be literate enough (as
  125. determined by literacy skill level) to read various books/scrolls.  Scrolls
  126. are now not identified, but literacy can be used to identify them.  Players
  127. can still read signs even if they are not literated (needed for game balance/
  128. information)
  129.  
  130. ------------------------------------------------------------------------------
  131. Changes from Crossfire 0.92.1 to 0.92.2:
  132.  
  133. Give artifact Gram weapon attacktype physical|confusion. Before, it was only
  134. confusion which would never actually damage anything.
  135.  
  136. If a player dies in a shop, remove any unpaid items from his inventory and
  137. put them back in the map.  Only applies in NOT_PERMADEATH mode.
  138.  
  139. Put in better DM security - now checks for name, password, and hostname (any
  140. of those can be wildcarded out) - see the lib/dm_file for some demo.  To
  141. supply a password for dm mode, just use dm with the password (ie, "'dm
  142. <fireball>")
  143.  
  144. Lighting code added (with various support objects, spells, etc).  No maps
  145. support this yet.
  146.  
  147. Don't baptize altars if we are in the editor.  Leave altars the way they
  148. are so that they will be baptized the crossfire loads the map instead.
  149.  
  150. Allow the title of and object to be set from within crossedit.
  151.  
  152. Allow individual players to set the inventory icon, now longer a compile time
  153. option.
  154.  
  155. If we get a non critical error and do an emergency save just in case,
  156. then don't remove any information/objects.  This probably fixes the 
  157. disappearing inventory bug.
  158.  
  159. ------------------------------------------------------------------------------
  160. Changes from Crossfire 0.92.0 to 0.92.1:
  161.  
  162. Improved altar sacrifice code (actually, any object type that calls
  163. check_altar) - treat a slaying field of 'money' as something special- don't
  164. care what form the money is in (see docs for more details)
  165.  
  166. Improve identify table (in conjunction with altar code above) - now takes
  167. any type of money, won't take money if nothing needs to be identified,
  168. will identify as many things as money is dropped for (ie, drop 200 gold, it
  169. will do 10 items)
  170.  
  171. In the map attributes in crossedit, you can select an option called
  172. "ShowWeakWalls".  If this is selected, weak walls will be shown in a partial
  173. teardown state - makes working with some maps much easier.
  174.  
  175. New client updated to support Power and Grace stats.
  176.  
  177. Magic system broken into 2 forms of magic - clerical and mage (they are
  178. now seperate).  Power stat also added to the game - plays into mage
  179. spellpoint (mana) total.  Grace also added - used for cleric spell casting.
  180.  
  181. Skill system greatly expanded - different experience types with skills
  182. associated with them (only has meaning if you are using the skill code) - thus
  183. you gain experience for certain categories as you use certain skills - see
  184. doc/skills.doc for more info
  185.  
  186. Multiple gods added (via config option in config.h) - basically, different
  187. gods have different enemies, and the effects cleric spells have will depend
  188. on this.  Altars are created for different gods.  See doc/Multigod.doc for
  189. more information.  Along with this, some new spells were added.
  190.  
  191.  Fix a problem of some objects falling out of sight when they shouldn't.
  192.  
  193. Send delete item to client if decrease_ob reduces the items nrof to 0.
  194.  
  195. Weight should now be fixed up when transferring stuff to/from containers.
  196.  
  197. config option called NO_AUTO_SKILL_SWITCH added - it means range type
  198. doesn't automatically get switched to skill type when using melee weapon.
  199. Main effects is that it makes it easier to switch between melee and range
  200. weapons (pretty much makes it like it was prior to the skill code.)
  201.  
  202. Sack code cleaned up - we don't need to split an object to see if it will
  203. actually fit in a container - we can just say how many we want to try to
  204. put in.
  205.  
  206. Actually put wimpy command back in (all code was there, just the link to
  207. call the fucntion was missing.)
  208.  
  209. Increase max count from 9999 to 99,999.  Wasn't that uncommen for high level
  210. characters to have more than 10000 platinum coins.
  211.  
  212. When invoking spells, temporarily switch the range type to range_magic -
  213. otherwise, a proper check for spellpoints is not done, and it then becomes
  214. possible to go negative.
  215.  
  216. Modified crossloop so that it renames and compresses any core files created
  217. while it is running - very handy for debugging (note that you could easily 
  218. modify it to remove the core files instead.)
  219.  
  220. ------------------------------------------------------------------------------
  221. Changes from Crossfire 0.91.9 to 0.92.0:
  222.  
  223. Make sure the weight a container is carrying can never go below 0.
  224.  
  225. Fixed fall below code, so that objects with visibility will not fall below
  226. objects that otherwise blocks view.
  227.  
  228. Fixed colormap problems with xpm graphics on black and white displays.
  229.  
  230. ALLOW_SKILLS is now the default in the config.h file.
  231.  
  232. IS_SUMMON_SPELL macro fixed (= was supposed to be ==)
  233.  
  234. Artifact foods added by Brian Thomas.  These are foods that can give some
  235. nice benefits (stat improvements, etc), or be much nastier poisons.
  236.  
  237. Bug fix made to skill selection that would otherwise cause core dumps.
  238.  
  239. Bug fix made to query_cost that would cause core dumps if the alchemy spell
  240. was used.
  241.  
  242. Fixed bug in dimension door that would cause core dumps if cast from a
  243. wand.
  244.  
  245. find_target_for_friendly_spell fixed to use the get_owner call instead of
  246. referring to op->owner (get_owner should always be used.)  Fixed core dumps
  247. that were caused when the owner would be killed, but still have a pet
  248. monster (vampires as an example.)  get_owner makes checks to make sure
  249. the owner still exists.
  250.  
  251. Only set the windows colormap if on a color display.
  252.  
  253. ------------------------------------------------------------------------------
  254. Changes from Crossfire 0.91.8 to 0.91.9:
  255.  
  256. Changed some parameter names from spell to spellnum.  Some compilers don't
  257. like parameter names that match structure names.
  258.  
  259. Alot of skill code added by Brian Thomas.
  260.  
  261. Assume that Suns running solaris have strncasecmp.  Also, if using
  262. Xpm_Pix, assume the strcasecmp is available (the Xpm library should
  263. provide it.)
  264.  
  265. get_player_ob function now uses the CALLOC define, instead of just
  266. calloc.
  267.  
  268. When dropping items onto objects that blocks view, they now fall below the
  269. object that blocks the view.
  270.  
  271. XPM mode now works with private colormaps.  It will also switch to a private
  272. colormap if it runs out of color during the xpm creation (works for
  273. crossedit also).
  274.  
  275. Don't let players put starting equipment into containers.
  276.  
  277. A bows weapon class (WC) is now used to determined hit probability for
  278. arrows.
  279.  
  280. When a player dies (in NOT_PERMADEATH mode), the character is immediately
  281. saved.  Thus, if you die there is no advantage to crashing the server,
  282. hoping for a copy of your character from before you died.
  283.  
  284. Set the value to 0 for arrows created with the create missile spell.
  285.  
  286. When transferrance is cast excessively, don't hit the person receiving the
  287. spell with 9999 points of physical damage (otherwise, spell can be used to
  288. kill many powerful monsters.)
  289.  
  290. Made some changes to make it compile properly under Solaris.
  291.  
  292. Fixed bug in dropall that would cause an infinite loop if the player had
  293. an open container.
  294.  
  295. Exits can now inflict damage on players.
  296.  
  297. Fixed middle mouse button missle attack.  Now clears the fire_on flag.
  298.  
  299. ------------------------------------------------------------------------------
  300. Changes from Crossfire 0.91.7 to 0.91.8:
  301.  
  302. Messages about an objects speed no longer printed to the console.
  303.  
  304. When players exit maps, no longer inform all the other players.
  305.  
  306. install-same and install-font directives added to lib/Imakefile - used
  307. if game is being installed to same font it was unpacked in.
  308.  
  309. Client now supports receiving bitmaps - server does not support
  310. sending them, however.
  311.  
  312. Max experience achievable is based on max level, not a hard coded
  313. value (although, at present time, max level is hardcoded to 100)
  314.  
  315. insert_ob_in_ob now returns an object - needed for client/server code.
  316.  
  317. check_inv function added to button.c.  Trigger will be altered depending if
  318. the character has a matching item (or lack of a matching item.)
  319.  
  320. Option added to config.h to make it so that backup saves will save the player
  321. back at home, instead of the present map.  Code adapated from code sent
  322. by John Steven Moerk (jsm@axon.ksc.nasa.gov)
  323.  
  324. Minor bug in crossedit fixed that would cause it to exit if both
  325. -p and -xpm is specified.  Both can now be specified - it will effectively
  326. ignore the -pix portion.
  327.  
  328. New skills added, with corresponding code to use these skills (from Brian
  329. Thomas) Use of skill code is selectable in the config.h file.
  330.  
  331. Two new spells: summon fog and steambolt (from Brian Thomas)
  332.  
  333. Enchant armor code added (from Brian Thomas)
  334.  
  335. Fixed bug in crossedit that would cause it to core dump whenever a non exit
  336. was selected and then the enter command run.
  337.  
  338. Fixed bug in attack.c that was using info_all if CASTING_TIME was
  339. selected.
  340.  
  341. Made it so that decrease_ob_nr will never decrease the object number below
  342. 0.  This fixes a bug in that remove_ob would calculate a negative weight,
  343. and then call sub_weight with that negative value.  This ended up resulting
  344. in weight being added to the player instead of subtracted.
  345.  
  346. ------------------------------------------------------------------------------
  347. Changes from Crossfire 0.91.6 to 0.91.7:
  348.  
  349. Item saving throw changed around - items are only invulernable to attack
  350. types that they are protectected or immune to.  For example, if an item is
  351. protected from magic, and is is by AT_FIRE | AT_MAGIC, it still needs to save
  352. against fire.  Before, since it was protected from magic and the attack type
  353. includes magic, it would not have been affected in any way.
  354.  
  355. insert_ob_in_map_simple function added.  This is used in functions that what
  356. to examine all the objects on a space, yet insert new objects as it goes
  357. (polymorph).  This function will not merge objects, so traversing the stack
  358. will work fine.  Should fix removing removed object bugs that used to happen
  359. for polymorph (function should be used in other functions that do a similar
  360. thing)
  361.  
  362. Damage field in objects is now 16 bits (signed).  Needed because some
  363. high level spells would do more damage than could be stored in signed
  364. 8 bits.
  365.  
  366. The 'old' client program no longer compares versions - there is no reason
  367. to, since the client doesn't do anything that requires an exact version
  368. match.
  369.  
  370. Better handling of the Eutl library added - selection is now done
  371. in crosssite.def.
  372.  
  373. Large lake faces expanded - now set up like walls, where auto join works.
  374. walls pick file expanded to include this image series and some other walls
  375. that were not previously set.
  376.  
  377. Pacify spell added - code from Brian Thomas
  378.  
  379. Show invisible and X-ray spell added (code by Peter Mardahl)
  380.  
  381. Face data is static - that is to say the the color for any face can not be
  382. changed.  In order to do a face with a different color, a new face needs to
  383. be created (or perhaps linked to the old).  This change was made because for
  384. client/server communication, having a known color for each image greatly
  385. simplify things (also, on monochrome or XPM displays, color information
  386. didn't have any effect). Related changes:
  387.  
  388.     1) color information is no longer stored in the archetypes file,
  389.     but continues to be stored in the individual .arc files.  collect.pl
  390.     has been modified to store this information in a faces file.
  391.  
  392.     2) visibility variable added.  This is a face value, and it is meant
  393.     to take the place of the DOUBLE_FLOOR_PATCH.  System will work like
  394.     this if DOUBLE_FLOOR_PATCH is enabled:  the floor and the object
  395.     with the highest visibility + the top object will be drawn.
  396.  
  397.     3) color can not be changed in maps - in fact, since color is now
  398.     stored in a different file, the color handling for objects has been
  399.     removed.  Note - when loading a map with crossedit, this information
  400.     is silently ignored.  Thus, when then saving the map, the color
  401.     information will be lost.  The maps should be updated with new faces
  402.     if this color information is imporant.  The lib/adm/map_info perl
  403.     program now will print out warning messages for maps that are using
  404.     color changes.  Also, the code in loader.c can easily be changed to
  405.     print out when it loads a color change (disabled because it is too
  406.     verbose for most uses)
  407.  
  408. PLAYER_COLORS config option and code support removed - with new static face
  409. information above, this can not be supported in any real way.
  410.  
  411. Shop buildings no longer have is_floor set.  This was a hack for the
  412. DOUBLE_FLOOR_PATCH for XPM mode.  However, enabling it can make it so
  413. objects disappear beneath the shops (due to the way maps save.)  Having
  414. objects not disappear is much more important (IMHO) than having things look
  415. just a little bit nicer for XPM mode.  Archetypes exist for it, but are in
  416. the dev/unused/0.91/7/mood_floor directory, since no maps presently use them
  417.  
  418. Mood floors added (code by thomas@nomad.astro.psu.edu).  When activated,
  419. these floors can change the mode/flags of monsters (make them aggressive,
  420. make them unagressive, make them fall asleep, or charm them)
  421.  
  422. New output mode in place - this uses a much smarter buffering method - it
  423. keeps track of several messages, and how often they are flushed is setable
  424. with the output-sync and output-flush commands (a help file does exist).
  425. All the various draw/write functions have been cleaned up, so that there now
  426. exists only 1 front end function (new_draw_info), which takes flags,
  427. priority, object, and the actual string.  The flags are defined in
  428. newclient.h, as NDI_* (in this file because client should use the color
  429. flags sometime in the future, and it makes sense to keep all the flags in
  430. one place).  Priority corresponds to the listen level that the player has
  431. set - the lower priority, the more likely it will be printed.
  432.  
  433. Certain runes/traps now work properly (things like create bomb and magic
  434. draining would not work if the player is not on the same square as the rune)
  435.  
  436. When a player kills a window, the players objects will be destroyed
  437. and not placed on the map.
  438.  
  439. Scrolls, rods, wands, and staves will always be at least level 1.
  440.  
  441. Beefed up demilich's.  Previously, for the experience they were worth,
  442. it was much to easy to kill them.  Main difference is that now their
  443. speed is 0.25 compared to 0.06
  444.  
  445. Fixed minor bugs with player movers - if the object to be moved had a
  446. speed greater than 1, it was possible to avoid all affects of the mover.
  447.  
  448. Objects that slay are fixed up.  Previously, only if the race matched the
  449. slaying type did it work.  Now, in addition, f the race of archetype name
  450. matches the slaying, the object will slay.  This fixes stakes, and probably
  451. a lot of other items that weren't slaying creatures properly.
  452.  
  453. Changed some of the stat bonuses/penalties for all the classes.  All the
  454. 'normal' races now have a net total of 0 (fireborn, wraith, and quetzalcoatl
  455. are not considered normal races, so their totals are unchanged.)
  456.  
  457. Some of the items in the artifacts file have been fixed up - fixed
  458. spelling errors and errors in placement of the difficulty.
  459.  
  460. ------------------------------------------------------------------------------
  461. Changes from Crossfire 0.91.5 to 0.91.6:
  462.  
  463. When player stops attacking, make sure his speed_left is not larger than his
  464. normal speed.  Fixes a bug where you could attack a wall, then try to attack
  465. in another direction, and move quite quickly for a short time, since weapon
  466. speed would be used for that short burst of movement.
  467.  
  468. Drain attacks become attack type physical when the character reaches the
  469. mininum experience possible.
  470.  
  471. Do not allow equipped weapons to be improved if they would make it too
  472. powerful for the character to use.
  473.  
  474. errmsg buffer sized increased to HUGE_BUF.  Should fix some bugs that
  475. were causes when this was overflowed in dump_object2.
  476.  
  477. SOUND_EFFECTS (if selected) is now defined when compiling all files.
  478. Previously, it was only set when compiling files in the server directory -
  479. this had the effect that the player structure was different between the
  480. server and common area.
  481.  
  482. speed+2 items now increase speed properly.  Values in the computation were
  483. not being cast to floats, so a speed+2 ended up giving the same amount of
  484. speed as a speed+1 item.
  485.  
  486. Restoration changed around.  The spell will no longer restore depleted stats
  487. - this can only be done with the potion.  The potion is now only generic
  488. restoration - specific stat restoration potions removed.  Also, perceive
  489. self will now tell the player what stats are drained and by how much.
  490.  
  491. Reduce the amount of experience you get from killing other players to
  492. 1/10'th what it used to be.  This should also discourage players from
  493. killing other players.
  494.  
  495. SAVE_PLAYER removed from configurable options - it is always on.  I can't
  496. see why anyone wouldn't want to be able to use this, and if you really
  497. don't want to use it, removing the save directory would pretty much
  498. work.
  499.  
  500. Fixed dropall command.  It wasn't dropping all items (seemed to
  501. stop at first locked item.)  Also, 'dropall armour' now drops
  502. helmets in addition to shields and armor.
  503.  
  504. Fixed heroism potion.  It was casting the incorrect spell (detect curse).
  505. Now it casts heroism.
  506.  
  507. Fixed bug that would cause remove object to try and remove object.  When
  508. loading maps, an object in a container in a container would not be inserted
  509. (this mostly happened with an object in a chest in an icecube.)  Changed
  510. code in load_objects to a recursive call, which can handle inventories any
  511. number of layers deep.
  512.  
  513. Fixed bug in drop_all that would cause core dumps.
  514.  
  515. ------------------------------------------------------------------------------
  516. Changes from Crossfire 0.91.4 to 0.91.5
  517.  
  518. Inventory icons are now updated properly.  Also, the inv_name and look_name
  519. arrays in the player structure have been redone - these are now arrays of
  520. function pointers and use the shared string libraries to allocated and free
  521. storage.  This should take less space than the fixed size arrays that were
  522. previously used.
  523.  
  524. When buying equipment, weight is now subtracted properly from the player
  525. for the coins that are used.
  526.  
  527. Maps can now have a fixed reset time.  This means that the map will reset
  528. after a set amount of time, no matter whether it is accessed or not.  Useful
  529. for highly used maps that really need to be reset once in a while.
  530.  
  531. Bug fixed in get_ob_diff.  The difference array would get overflow,
  532. corrupting other data.  Many core dumps were probably caused by this.
  533.  
  534. Fixed bug in legal_range routine where legal_range would only check to
  535. first item of type BOW in a players inventory.  This caused rotateshoottype
  536. to not list the bow entry if it was not the first bow equipped.
  537.  
  538. Cloaks are not always turned into artifacts - normal cloaks can be found now.
  539.  
  540. Charisma bonus changed around some more.  Penalties are not quite as harsh
  541. for very ugly characters - with the change, a character will never pay
  542. more than 10 times to buy something than to sell that same item.
  543.  
  544. Various functions changed around and some new ones added so things will
  545. work properly with the new client (still under developement.)  Most notable
  546. changes were to common/xutil.c, with the newclient.c and newsocket.c
  547. files added.
  548.  
  549. Unpaid items that are alchemied are now worth nothing.
  550.  
  551. TWO_BYTES_FONT is now a standard.  I can't see crossfire ever going back to
  552. having less than 256 images.
  553.  
  554. free map->tmpname when it is no longer needed (before setting it to NULL).
  555. this pointer is assigned from a tempnam calls, which (on Sunos 4.1.x) uses
  556. malloc to allocate space.  Note - if this is not true for you system, let me
  557. know, so I can put code in to handle this.
  558.  
  559. destruction spell (from scrolls) fixed.  This was actually a problem
  560. in that cast_spell was not setting the owner properly.
  561.  
  562. Magic mapping improved for bw systems.  This actually makes it work like
  563. it used to, with it doing stippling for object.
  564.  
  565. Casting of director spells changed.  Placement away from characters and
  566. underneath characters now possible
  567.  
  568. New potion type added - Improvement:  This will raise level hit point or
  569. spell point gain to the maximum value.  It starts at the lowest level (ie,
  570. first hit/spell points gained), and will raise one value to maximum.
  571.  
  572. Some patches added (From Manfred Weichel, manfred.weichel@mch.sni.de) which
  573. should make compiles on SVR4 work properly.
  574.  
  575. New artifacts (in lib/artifacts file) added.
  576.  
  577. Configurable option:  cone attacks no longer propogate through monster - it
  578. will only hit the first row.  
  579.  
  580. Remove curse/damnation changed so that it will not remove curses which
  581. are a higher level than the spell caster.
  582.  
  583. Polymorph code changed around.  Greater chance of items being destroyed,
  584. value can never be greater than twice the original value, no mininum value.
  585. Also, now the item value and not clone value is used, so things like
  586. scrolls, wands, rods, etc should have the max price work correctly.  magic
  587. is not maintained, rather, magic*4 is used as the difficulty for creating
  588. the new item, with max_magic of the new item never being greater than the
  589. magic of the old item.  The number of objects remaining after a polymorph
  590. will be less than the original (10 arrows might become 8 bolts, for example.)
  591.  
  592. You will no longer attack players in the group you are in by running
  593. into them.
  594.  
  595. Titles now restored properly from save files (only makes a different if
  596. SET_TITLE is defined
  597.  
  598. When doing a save, check the return value of fclose when writing to tmp file
  599. and the final file.  If either of these writes file, use the backup file
  600. instead (previous save file is renamed as a backup file.)  Should prevent
  601. problems when there are full filesystems of quotas in effect.  The character
  602. will not be saved, but at least an older save file exsists instead of the
  603. character being totally gone (like before.)  Patch from Laurent Wacrenier
  604. <Wacren@Gin.ObsPM.Fr>
  605.  
  606. Plural names for items that have a 'of' in them is fixed/added.  This mostly
  607. deal with potions (so instead of potion of dexterys, you get potions of
  608. dexterity)  Patch from Laurent Wacrenier <Wacren@Gin.ObsPM.Fr>
  609.  
  610. query_cost changed around so that value for very low priced items are now
  611. computed correctly.  Before, the nrof of items was multiplied in very late,
  612. and various divisions (for being unidentified) were done previously.  For
  613. low value items, this would result in a zero value.  Zero values still
  614. result for low priced items if you only have 1 or 2 of them, but if you
  615. have 80 of them, a proper value is now generated.
  616.  
  617. Code to control golems (and in fact many summoned creatures) now fixed.
  618. Help file added about golems.  This also fixes a core dump that was caused
  619. when a summoned creature was around, and another scroll was used.
  620.  
  621. Modified logger in common directory to no longer create a fatal error if you
  622. get too many minor errors in and the editor is what is being used.  Before,
  623. occasional errors would be reported by the editor (mostly dealing with not
  624. found archetypes in maps), which would eventually cause a fatal error.  This
  625. seemed erratic, because the editor never changes the tick, so loading one
  626. map might result in the fatal error because of the error total from the
  627. previous maps.  Also, when using the editor, having missiong archetypes
  628. probably should not be a fatal condition.
  629.  
  630. food value can be changed in artifact file.  Food is mostly used to have
  631. various meanings in different objects.  The artifact file has also been
  632. updated about everything that is changable, and what the values mean (ie,
  633. docs are built into the top of the file as comments)
  634.  
  635. Weapons/armor no longer 'disappear' when a class that can not use such an
  636. item tries to equip a group of them.  That is, if a class that could not use
  637. armor tried to equip 2 chain mails, one of the chain mails would disappear.
  638.  
  639. ------------------------------------------------------------------------------
  640. Changes from Crossfire 0.91.3 to 0.91.4
  641.  
  642. FLAG_NO_FIX_PLAYER is set before saving the player, and cleared after the
  643. player is loaded.  Before, a character will full sp and hp could be save, and
  644. when reload, not be at full strength.  This is because fix_player was being
  645. called during the load process, before all the characters items had been
  646. loaded and equipped.  This, the maxsp and maxhp values were that of the
  647. character with no items.
  648.  
  649. Artifacts can now pass the various spell paths to the newly created
  650. artifact.  The values are or'd with the previous spell path values of the
  651. object.
  652.  
  653. The artifact file now supports objects with name NONE.  If this object is
  654. rolled up when trying to generate an artifact, then no artifact is
  655. generated. This allows for better tuning the chances of having certain
  656. artifacts, by just reducing the chance of having an artifact at all.  The
  657. 'type' field of the Object in the artifact field is still required, but any
  658. other fields for the artifact object are not used.
  659.  
  660. Crossedit fixed so that all the images do not appeared inversed when being
  661. used on a monochrome display.
  662.  
  663. Changed common/xutil.h so that XPM mode will work on monochrome systems.  In
  664. fact, XPM mode should now work on all systems, previously, the load process
  665. tried to create a pixmap 8 bits deep.  If the X server did not support it,
  666. errors would result.  So while playing in XPM mode on monochrome may be
  667. pointless, this allows play on systems where it may have some use.
  668.  
  669. libproto.h and sproto.h only check that __STDC__ is defined.  Previously,
  670. __STDC__ had to be nonzero, and not all compilers set this.  Also, in
  671. global.h, if __STDC__ is not defined, return an error.  Many compilers do not
  672. allow _STDC__ to be redefined.
  673.  
  674. Updated changable variable in crossedit.  Now the various spell paths can
  675. be set in the editor.
  676.  
  677. SPEED_GAME now standard compile option, and not selectable.  Having it as
  678. an option seemed to create more problems than bugs non speed game found.
  679.  
  680. Crossfire man page updated.  xledit.man changed to crossedit.man, to
  681. reflect the name of the program it represents.
  682.  
  683. crossfire.doc updated with more information - mostly about new objects
  684. added to the game.
  685.  
  686. More help files.
  687.  
  688. Objects with type CREATOR were added.  The objects, when applied, create
  689. other objects.  Documentation in crossfire.doc.
  690.  
  691. Object that cast spells (rod, scrolls, wands, and horns) now have a level
  692. associated with them.  This level is used to determine at what level the
  693. spell should be cast, instead of using the owners level, which was typically
  694. used before (allows creation of super powerful wands/rods/horns, but having
  695. them be a very high level.)
  696.  
  697. Bow, crossbow, bolt, and arrow code redone by Tero Haatanen.  This cleans up
  698. the code, and allows for magical arrows and bolts.
  699.  
  700. Race can now be changed in the artifacts file.
  701.  
  702. A spell of Banishment has been added.
  703.  
  704. Attacktype AT_DEATH is now more potent when if against a monster that
  705. the item also has slayign capability against.
  706.  
  707. Bug fixed to prevent players from getting infinite experience for finding
  708. the same trap.  Also, experience changed for disarming traps.
  709.  
  710. ------------------------------------------------------------------------------
  711. Changes from Crossfire 0.91.2 to 0.91.3
  712.  
  713. Changed artifact structure so that items with a chance greater than
  714. 255 are now possible.
  715.  
  716. Object now put into icecubes when hit by a cold spell, like before.  This
  717. probably got messed up in the saving throw re-write, where objects had to be
  718. either immune or protected from cold to be put in icecubes.  In fact, the
  719. reverse was supposed (and now does) happen.  IF an object is
  720. protected/immune from cold, it is also immune from being put in an icecbub.
  721.  
  722. Fixed up is_magical and need_identify routines to handle more items.  Rods,
  723. scrolls, and spellbooks are always considered magical in nature.  Wands and
  724. staves are magical if they still have charges.  Also, fixed up so that some
  725. of the Artifact items are now detected as being magical.
  726.  
  727. If player lacks sufficient money to buy from shop, it now prints how much
  728. short he is in standard english string, (ie, 2 platinum 3 gold,etc), instead
  729. of gold.silver format (lacke 44.25 gold).
  730.  
  731. Inventory drawing changed.  Should be a little more efficient, and be more
  732. efficient on drawing.  With auto pickup modes (that pick up more than one
  733. item), inventory will be drawn after all applicable items have been picked
  734. up, instead of after each one.
  735.  
  736. Item status is printed next to item image in players inventory if
  737. SHOW_INV_ICON is selected in the config.h file.  It would be nice if better
  738. imagines were designed for the status (right now, just words are printed
  739. out.)
  740.  
  741. When connecting to the server, a one line welcome message is printed.
  742. Crossclient was modified to ignore this line if it starts with 'Welcome', so
  743. changing it may cause problems with crossclient.
  744.  
  745. Potion of restorations are now handled by means of different archetypes and
  746. treasure lists, instead of having special code in the program to handle
  747. them.
  748.  
  749. If a RUNE is found in an object inventory when free_object has been called,
  750. remove the rune instead of dropping it to the ground.  This is so that traps
  751. (runes) disappear when the object they are placed on is destroyed.
  752.  
  753. Doors are now trapped, and be detected & searched just like chest
  754. traps.
  755.  
  756. Map difficulty can now be set in the map, and not be calculated at map load
  757. time.  Crossedit has been modified so that 'Attributes' now contains a
  758. difficulty field, and if set, this will be used when loading a map (it is
  759. stored in the level field of the map).  If this value is 0 (default), then
  760. the old formula for calculating the difficulty will be done.  The advantage
  761. of this is that map creators can now set the difficulty of the map more to
  762. their liking, and certainly do a better job than the program can do.
  763.  
  764. Pickup by value density fixed.  The number of items is now taken into
  765. consideration (before it did not, so a lot of arrows would be picked up,
  766. because the total value divided by the weight of 1 arrow was greater than
  767. the pickup value.)
  768.  
  769. Bug fixed in query_cost.  Before, for F_TRUE value, unless the item was
  770. worth more than 10,000 sp, F_SELL value would be calculated instead of the
  771. true value.
  772.  
  773. Merge several small files in common.c into one file called porting.c.
  774. porting.c contains common functions that are called by crossfire.  This
  775. allows system dependent code by be in one file, instead of scattered
  776. throughout the program.
  777.  
  778. -listen_port <num> command line option added.  num is the port to use for
  779. connections, instead of the default (13326)
  780.  
  781. Instances when a variable name is the same as a structure name have been
  782. fixed (by changing the variable name).  On some compilers, this is a
  783. problem.  I can not be sure that all such cases have been fixed, as I have
  784. not found a way for gcc to create warnings in this situation.
  785.  
  786. Random happenings when a spell fails due to encumbrance has been added.
  787. This option is configurable in the config.h file.
  788.  
  789. Trap code added.  Chests and doors can now be trapped.  'search' and
  790. 'disarm' commands added.  old 'search' command was changed to 'search items'
  791.  
  792. Inventory locking added.  Makes it so that items can be locked in a players
  793. inventory, and will not be dropped when a 'dropall' command is issued.
  794. 'inv-lock' and 'inv-unlock' commands were also added.
  795.  
  796. 'gsay' command added for party mode.
  797.  
  798. Spellbooks can now have their slaying field set to the name of the spell
  799. that the spellbook is of.
  800.  
  801. Debugging output disabled in crossedit.  It produced copious amounts of data
  802. that has little relevance except for the developers.  It can easy be turned
  803. back on by editing the crossedit/include/debug.h file.
  804.  
  805. Artifact gems (worth lots of money) and amulets added.
  806.  
  807. Invisible object now appear in crossedit.  Fixes a problem, but now makes
  808. use of the global 'editor' variable, making it likely it won't be obsolete
  809. any time soon.
  810.  
  811. Artifacts (in artifacts file) can now have nrof field that will be used to
  812. generated the number of items instead of the treasure list.  If the nrof in
  813. the artifact is 0, then the standard treasure list nrof is used instead.
  814.  
  815. Artifacts can now grant reflect missile and spell ability.  Also, by setting
  816. stand_still, the objects will not be animated.
  817.  
  818. ------------------------------------------------------------------------------
  819. Changes from Crossfire 0.91.1 to 0.91.2
  820.  
  821. Some options now standard part of game (SHOP_LISTINGS, Line of Sight).  The
  822. config.h (for this release) contains these options, but they are commented
  823. out with the note they no longer do anything.
  824.  
  825. Changed value pickup to pick up things based on true value, and not sell
  826. value.  True value is how much the item is worth without applying charisma
  827. bonuses.  Before, if two different characters used the same pickup mode,
  828. different stuff could be picked up because of charisma differences (or even
  829. if a character gained charisma, the same pickup mode may not work as it did
  830. before).  By using true value, pickup mode operates the same between all
  831. characters,
  832.  
  833. Items of type TREASURE can now have their experience set, and this will be
  834. used for the difficulty of the generated treasure instead of the map
  835. difficulty (as was done with shops).  If experience is not set, then the map
  836. difficulty will instead be used (or 14 in the case of shop floors).
  837.  
  838. Cure poison actually cures it, instead of reducing the duration.
  839.  
  840. Don't use fseek when loading in map files.  Some systems do not support
  841. fseek on pipes (which are used for compressed files).  Instead, just
  842. set the variable with the data we read, instead of seeking back and
  843. re-reading it.
  844.  
  845. Transferrance spell changed so that supercharging will have bad effects
  846. (first confuses the player, then a large fireball is created (with player
  847. losing all spellpoints)
  848.  
  849. Poisoning made more vicious - it does more damage based on the level of the
  850. creature that uses it (level/2 in fact).  This makes it so that very tough
  851. creatures that poison someone will have the poison do serious damage.
  852. Also, damage caused is no longer random.
  853.  
  854.  Chests can now contain multiple items.  Code changed to handle this
  855. properly.  Treasure is also always dropped on the floor (Even if the chest
  856. is in an objects inventory.)  hp field used in chests (and in fact all
  857. treasures) to determine how many objects to create (thus, a chest with 3 hp
  858. will have 3 objects created).
  859.  
  860. Crossedit now draws a rectangle around the selected area.  Reversing the
  861. color of the images did not work in XPM mode.
  862.  
  863. Have client.c include "includes.h".  includes.h sets up all the name defines
  864. properly (ie, __sgi__, __sun__)
  865.  
  866. SP_* functions changed (by Rupert Goldie) to take an object pointer instead
  867. of a level value.  This makes adjustments for spell costs (via stuff like
  868. spell paths) easier to make, because now only the SP_* functions need to be
  869. changed. With the object structure, checking for known paths (or perhaps
  870. other things in the future) can easily be done.
  871.  
  872. Bombs will now be dropped before exploding.
  873.  
  874. New attack type (God Power) added.  The cleric cause wound spells use this
  875. attack type.
  876.  
  877. Charm monster spell added.
  878.  
  879. Party system re-written by Scott MacFiggen <smurf@soda.berkeley.edu>.
  880. Characters will now only share experience if on the same map, and other
  881. features were also added.
  882.  
  883. Modified check_item function (used in creating weapons with the improve
  884. scrolls).  The objects being sacrificed do not need to be in one group (ie,
  885. two groups of 4 potions of dex will now be counted as 8 potions).  This only
  886. applies to potions, since some can be identified and others not identified.
  887. Also, cursed or damned items will not count towards sacrifice count
  888. (although, they will be consumed).
  889.  
  890. Changed way cancellation works on items.  Before, if cancellation hit a
  891. player and the player failed the saving throws, the items got no saving
  892. throw versus cancellation (only if their absolute magic value was less than
  893. RANDOM()%6 did they survive).  Now each item gets a saving throw.  Note that
  894. if a container makes a saving throw, then the items inside do not need to
  895. make saving throws and are unaffected.
  896.  
  897. A separate function did_make_save_item was split off from
  898. save_throw_object.  did_make_save_item justs checks to see if the item made
  899. its saving throw based on the tables (and any protections or immunities
  900. grants it an automatic save, as before) save_throw_item calls this function,
  901. and in addition, does the appropriate actions (burns up items, turns them
  902. into icecubes, calls cancellation, etc.)
  903.  
  904. Saving throw method changed.  Before, each item got 5 chances to make a save
  905. for each item it is composed of.  Now, it gets one chance for material it is
  906. composed of.  Then, based on the number of saves it made, and the number
  907. materials it is composed of, an overall made save/failed save is
  908. determined.  This change is to make it easier to figure out saving throw
  909. values, and hopefully make adjustment easier.
  910.  
  911. Saving throw tables updated.  In general, each item is +5 compared to what
  912. it was before.  This should hopefully make it so that items have about the
  913. same success rate they did before.
  914.  
  915. Crossedit modified to preserve value of connected field when cut/copying and
  916. pasting.  Before, an object that was copied/cut would also have its
  917. connected field reset to 0.
  918.  
  919. More XPM images colored.  Filenames for the river directory have been
  920. re-done, to actually make it a bit clearer of what does what.  The archetype
  921. names were not renamed however, to keep compatibility.
  922.  
  923. World expanded.  Another row of maps was added to the southern edge.  The
  924. world maps were also renamed to a world_xy format, where x is a letter
  925. and y is a number.  This represents the x and y location of the map, making
  926. it easier to figure out how maps related to each other.
  927.  
  928. Map spaces can prevent magic user spells, cleric spells, or both.  Before,
  929. an anti magic square prevented all types of spell casting.
  930.  
  931. Have monsters regenerate spell points even if they don't cast a spell.
  932. Monsters have a 1:3 chance of casting spells, irregardless of any other
  933. factors.  Before, spellpoints would only be regenerated if it got past this
  934. check.  Also, some monsters (dragons, chinese dragons) have had their max
  935. spellpoint and regeneration rates increased to correspond with the higher
  936. cost of casting their breath weapons.
  937.  
  938. Altars now will also match on the slaying field of the object being
  939. sacrificed.  This is similar to how keys and special doors work.  With this
  940. change, it is no longer required to make a unique item that then needs to be
  941. sacrificed (ie, the dagger, the cup, and the crown for the old city
  942. quests).  Instead, a cup, and crown can be used, with the slaying field set
  943. appropriately (unfortunately, will not work for weapons, as it will think
  944. that is the monster to do extra damage against.)  However, the altar code
  945. always did match item name, so calling it something special like 'The
  946. Dagger' and have the sacrifice look for that should also work.
  947.  
  948. Spell encumbrance code added.  More you are carrying the higher your
  949. chance for failure.
  950.  
  951. ------------------------------------------------------------------------------
  952. Changes from Crossfire 0.91.0 to 0.91.1:
  953.  
  954. Fixed bug in the enchant weapon code.  It was not allocing enough
  955. space for the string, and thus would corrupt the heap.
  956.  
  957. Minor fix to spells.c.  IT was using strdup instead of strdup_local,
  958. which caused the compile to fail on some machines.
  959.  
  960. No longer gets errors when adding a player on a map that is not
  961. loaded in a multi player game.  Before, process_events would see that
  962. the player has no object, and could get enough errors to cause the game
  963. to quit.  Now, it suppresses errors if it is only loading objects
  964. for that map.
  965.  
  966. Default map difficult for treasure that is created in shops was changed from
  967. 9 to 5.  In this way, the likelihood is higher that good items will be found
  968. in dungeons, not in the shops (there are very few items with difficulty
  969. above 9)
  970.  
  971. Archetypes cleaned up.  All archetypes that were not being used in a map
  972. were moved to dev/unused/0.91.1.  Note:  There are still a few archetypes
  973. that are not used in any maps, but these are part of a collection (ie, one
  974. section type of a wall).  This was done really because there is no reason to
  975. have archetypes that are not being used to be in the official distribution.
  976. It could be misleading for people looking through the arch directory (ie, 'I
  977. thought I looked at all the maps, but never saw this monster').  Also, I
  978. have no problem moving these archetypes back in, once some maps actually use
  979. them.
  980.  
  981. 'grass' and 'sea' are no longer animated.  There are a few reasons for
  982. this:  1) The animations never really were that interesting, 2) being
  983. animated put them on the speed list, and being that over all, they are the
  984. second and third most used objects, this is a performance hit, and 3) With
  985. pixmap and xpm images, re-draws are only done on squared the have changed
  986. (really improves performance).  However, with them being animated, they
  987. often changed, so that more re-draws were needed.  The old archetype and
  988. image files are in dev/old (in arch distribution) if you actually want to
  989. use the animated versions.
  990.  
  991. Put a limit of 70 on damage bonus for weapons.
  992.  
  993. Treasure lists expanded.  The old treasure lists (in treasure.c) have been
  994. removed, and treasure lists added to the treasures file added to take their
  995. place.  The treasure file has been expanded have list transitions, and
  996. treasure lists in which 1 object on that list will be generated.  Archetypes
  997. (shop, random, and chest) updated to use the randomitems field to determine
  998. what treasure list to use to generate the items.  Advantages of the new
  999. method:  Ability to better tune treasure probabilities, re-compiling not
  1000. necessary in order to update treasures.  the create_treasure function was
  1001. modified to add an extra argument - this is used to keep track of how many
  1002. times it has been called on this attempt to create a treasure.  In this way,
  1003. infinite loops (with list transitions) are avoided.  Generate treasure
  1004. replaced with a simpler function that calls create_treasure, and returns the
  1005. object.  create_treasure takes a treasurelist instead of a integer
  1006. treasurelist number, like it did before.  The crossfire.doc file has
  1007. been updated about the new treasures file capabilities.
  1008.  
  1009. Chests are now created with their treasure as their inventory (this mostly
  1010. happened because of the treasure changes above).  Advantage is that when a
  1011. chest burns up, its treasure may remain (or may be burned up).  Before, when
  1012. a chest was burned up, its treasure inside was not created.
  1013.  
  1014. Rolling multi-part objects should now work better (not perfect, however).
  1015.  
  1016. Carrying an open bag with a mode that picks everything up will no longer cause
  1017. an infinite loop.
  1018.  
  1019. Crossedit changed to draw selected areas as a black box.  Fixes some problems
  1020. with display in XPM mode.
  1021.  
  1022. Fixed bug that would cause game to crash when pets were summoned.  Problem
  1023. was an infinite recursive loop, that would then cause the system to run out
  1024. of stack space.  Solution is to decrease the speed_left of the object before
  1025. one of the function calls.  This makes it so that at some point, one of the
  1026. functions will not be called.
  1027.  
  1028. When a rune is cast, use the s->archname for the archetype name, and
  1029. not hard coded strings.  Cured a bug with rune of transference.  Also,
  1030. allowed several case statements to be merged.  Really, no archetype names
  1031. should be used in spells.c, when casting spells.  The archetype name should
  1032. be gotten from the spell structure.
  1033.  
  1034. If a button is being updated on a map that is being saved, just return
  1035. from the function.  Prevents errors 'object has speed but is free'
  1036.  
  1037. Fixed bug that caused objects that got a speed_left of exactly 0 to
  1038. be frozen.  This was because speed_left >0 to have the object be processed,
  1039. and <0 to have speed added.  Now, speed is added if speed_left <=0.
  1040.  
  1041. Some minor changes made to hopefully make it compile on AIX systems without
  1042. any modifications.
  1043.  
  1044. process_active_maps now called when a map is being loaded.  It should
  1045. hopefully work properly, since enter_exit was modified to not use any
  1046. static variables.  Also, process_events was modified to take a map as
  1047. an argument, and if non null, only update objects on that map.  That makes
  1048. process_map obsolete.  process_active_maps was also changed to still process
  1049. even if there is only one player.
  1050. Crossfire should let players still perform actions when a map is being
  1051. saved.  Problem is, handling a map that is in the process of it being
  1052. saved, and having a character enter it.  Crossfire needs to finish
  1053. saving that map, then re-load it and insert the character.  Large changes
  1054. to how player interact with loading & saving of maps would probably
  1055. be needed, and probably should be done.
  1056.  
  1057. You no longer lose luck if you kill yourself, and the player who kills another
  1058. player now loses the luck (before, the player killed would lose luck).
  1059.  
  1060. Now inventory display modes - unpaid, cursed, magical, nonmagical.  All pretty
  1061. self explanatory.
  1062.  
  1063. ------------------------------------------------------------------------------
  1064. Changes from Crossfire 0.90.5 to 0.91.0:
  1065.  
  1066. Some new maps added to the standard distribution (Magara and some of
  1067. the esben maps).  Magara was added as a place to depart to by ship, the
  1068. esben maps were merged in as new buildings or towers on existing maps, not
  1069. as a new continent.
  1070.  
  1071. Keyboard buffering is now selectable via 'keyboard' command.  Before,
  1072. an attempt to remove keystrokes from the X Events queue was made, but could
  1073. not always remove all of them.  Now, it should remove all of them, or none
  1074. of them, depending on the keyboard buffer setting.  The value will be
  1075. saved with the player.
  1076.  
  1077. Pickup mode value now saved and restored from the characters save files.
  1078.  
  1079. Inventory and look window should only be re-drawn once when selling
  1080. an item.
  1081.  
  1082. Calls to draw_stats in common/living.c will only be made if the object
  1083. type is a player (should prevent some warning messages)
  1084.  
  1085. Fixed create earth wall spell so that it uses bdur as the base hit
  1086. points of the wall (instead of bdam).  This will prevent some core dumps,
  1087. because otherwise, the wall can have 0 hit points.
  1088.  
  1089. Program should not core dump when person quits that game and the map he
  1090. is on has been swapped out. (ie, person saves or quits the character,
  1091. but the map gets swapped out before they type 'q' to the play again
  1092. question)
  1093.  
  1094. Word activated teleporter code added (Peter Mardahl).
  1095.  
  1096. Who can become DM, based on their user id, can now be set in the dm_file
  1097. (assumed to be in lib.) (Tyler Van Gorder)
  1098.  
  1099. Tell should now work properly (Eric Mehlhaff)
  1100.  
  1101. Cloak code added (Peter Mardahl)
  1102.  
  1103. Objects can not grant invisibility, make_invisible variable added to
  1104. archetype files.
  1105.  
  1106. Added information to the crossfire.doc file (was missing several
  1107. attack types and materials).  Added better information on what some of
  1108. the flags do.  Noticed that will_apply 4 applied for both scrolls
  1109. and earthwalls, now only applies to earthwalls.  To have a monster
  1110. use scrolls, can_use_scroll should be used instead.
  1111.  
  1112. Code added to deny users or sites from connecting.  This is to prevent
  1113. users who intentionally crash the server to connect and start up a window,
  1114. which they then crash the server with.  Patches from Tyler Van Gorder.
  1115.  
  1116. Two floors will can now be drawn when using XPM mode and this options
  1117. has been selected in config.h  This allows for towers to sit on top of
  1118. grass to look proper.  From Gregor Schmid <schmid@fb3-s7.math.tu-berlin.de>
  1119.  
  1120. Patches that modified 'create food' spell.  Better food (ie, waybread)
  1121. will be created at higher levels, and the caster can also specify what
  1122. type of food to be created.  From Peter Mardahl.
  1123.  
  1124. Spell paths added by Rupert G. Goldie <rgg@aaii.oz.au>.  Simply put, 
  1125. each 'spell path' contains a certain category of spells.  Objects and
  1126. races can be attuned, repelled, or denied certain paths (objects would
  1127. apply the the person wearing them).  Attuned allows casting of spells in
  1128. that path at lower cost and greater efficiency, repelled paths are cast at
  1129. a higher cost and lower efficiency, and denied paths can not be cast at all.
  1130. Thus, a wand of small fireball that is attuned to Fire would cast more
  1131. powerful fireballs.  A character wearing a ring that is denied the path
  1132. of fire could not cast fire spells at all.  Right now, no items will
  1133. be created using these features, and no characters have any of these, but
  1134. these might be added in the future.  Look at the spell-paths file in the
  1135. doc directory for a little more information.
  1136.  
  1137. Pickup mode 6 (pick up magical items) will not pick up known cursed items.
  1138.  
  1139.  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1140. Object structure and process_events changed.  Now, a separate list
  1141. us used to keep track of active objects (objects whose speed is nonzero).
  1142. All objects on the active list are still on the normal list, but
  1143. process_objects only needs to go through the active_list for objects
  1144. to process, saving a lot of time.  The cost is adding two
  1145. pointers (active_next and active_prev) to each objects.  But the speed
  1146. gains are well worth the minor memory cost.  the 'malloc command
  1147. was changed to display the number of objects on the active list -
  1148. note that there is zero memory usage for these, since these objects
  1149. are also on the normal object list.
  1150.  
  1151. Programming note:  Any time an objects speed is changed (doesn't
  1152. happen too often), a call to update_ob_speed(object *) must be
  1153. made, so that the object can be added or removed from the active
  1154. list, as appropriate.
  1155.  
  1156. In testing, I first ran crossfire, with process events using the
  1157. normal object list, and printing out error messages if it found
  1158. objects that had speed but were not in the active_list.  I cleared out
  1159. a couple warehouses in Navar without any errors.
  1160.  
  1161. Then, I switched to using the active_list, and printing out errors if
  1162. it found objects on that list with zero speed.  I cleared out the
  1163. mages tower in Navar city without any errors.
  1164.  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1165.  
  1166.  
  1167. Selling items now works properly (it only failed to work if
  1168. AUTO_SAVE was not set previously, and the value of the item was
  1169. beyond a certain amount.)
  1170.  
  1171. Look window code changed so that it does not erase the unused area 
  1172. unless necessary.  Also, when a player moves, freeze_look is set.
  1173. This was changed because the functions that move_ob calls update the look
  1174. window, and the window was being updated 3 times each time the player moved.
  1175.  
  1176. When poisoning ends, it no longer core dumps.
  1177.  
  1178. Inventory window updated if reading an unidentified spell book and you
  1179. already know that spell.
  1180.  
  1181. Casting rune spells now works properly.
  1182.  
  1183. Spells now (once again) sorted upon loading of characters.
  1184.  
  1185. ------------------------------------------------------------------------------
  1186. Changes from Crossfire 0.90.4 to 0.90.5:
  1187.  
  1188. Bug fixed with window titles getting their names changed. (Tero Haatanen)
  1189.  
  1190. Container code changed around.  Containers can be locked, they can be used
  1191. from the ground.  FLAG_CONTAINER removed, since there is already a type
  1192. container, and bonus removed from object structure (Tero Haatanen)
  1193.  
  1194. insert_ob_in_ob sorts objects, so items with more magic are before those
  1195. with no magic bonuses even for unidentified.  It also uses the absolute
  1196. value of the magic, so it should be a little more difficult to know if the
  1197. item is cursed or not.
  1198.  
  1199. Added unique-flag and UNIQUE_ITEMS define. All items which have unique flag
  1200. are saved to directory .../lib/unique-items. A filename is mapname + ".v" +
  1201. number, where number is normally 01, but if two or more server is running
  1202. same time it can be also greater.  This feature can be used to banks and
  1203. inns to save permanently items.  The code is one limitation: if map contains
  1204. unique item which can be carried away from map (e.g. an unique excalibur)
  1205. there must be at least one unique item on map which can't be carried away.
  1206. This is because unique items are loaded from original map only if unique
  1207. items file doesn't exit. If all unique items are carried away from map then
  1208. they are loaded back next time when someone enters that map.  This should
  1209. not a problem if map makers remembers this. (Tero Haatanen)
  1210.  
  1211. Editor by Jarkko Sonninen. He added toggle button into attribute window and
  1212. made map's reset time and timeout so that they can be configured in maps. He
  1213. also fixed map archetype, so that map default stating coordinate is (2,2)
  1214. like before.  This seems break a gatehouse map, where it use default value
  1215. on map (changed 0 to 2), but it's easy to fix.
  1216.  
  1217. Change check_walk_on (common/object.c) so it no longer calls the draw_func.
  1218. This eliminates a problem of seeing flashes of areas that should be blocked.
  1219. This is because the draw function it called would re-draw the game window
  1220. before the variable to re-calculate line of set was set.  As I see it, this
  1221. function call was not needed in any case, because this is called during the
  1222. players movement.  After the player moves, the draw function is called from
  1223. the process_events (now process_players1) function.  This should also
  1224. conserver a little cpu time, and bandwidth.
  1225.  
  1226. Coin code in shop.c changed.  Patch from Kjetil Torgrim Homme made it so
  1227. that coin value can be changed in archetypes and the shop code should still
  1228. work properly.  I made changes so that the number of coin types is set with
  1229. a #define, making adding new coin types easier.
  1230.  
  1231. AUTOSAVE, SAVE_INTERVAL, and NO_EMERGENCY_SAVE should now work properly.
  1232. See include/config.h for more information on these options.
  1233.  
  1234. Changed it so that updates to other maps will not be performed while
  1235. loading a map.  This caused a bug if two players entered exits
  1236. at the same time.  One or both of the players may end up in incorrect
  1237. locations, all exits in that location may be closed, etc.
  1238.  
  1239. Saving throw table expanded to handle all materials and attack
  1240. types (Peter Mardahl)
  1241.  
  1242. Fixes so that Turn Undead does not do physical damage (Peter Mardahl)
  1243.  
  1244. Patch to make it impossible to prepare multiple weapons at the
  1245. same time (Peter Mardahl)
  1246.  
  1247. Added 'sea1' archetype.  This is the same as the sea archetype, but allows
  1248. for walk on.  Its purpose is to use for backgrounds behind boats and similar
  1249. objects.  Because it will probably be needed in so many places, I decided to
  1250. make an archetype, instead of editing the variables inside crossedit for the
  1251. object.
  1252.  
  1253. Removed xbm_values array.  This was used to map a face number to that face
  1254. location in memory.  Since the bmaps file is created automatically without
  1255. any holes, this is not longer necessary.
  1256.  
  1257. Archetype for wonder spell now in place.  This will prevent core
  1258. dumps when  the spell is cast.
  1259.  
  1260. Pixmaps will now be freed upon exiting Crossfire.  They will also be freed
  1261. after emergency saves are performed.  This fixes the problem that some
  1262. X-Terminals would not free the memory used the the pixmaps otherwise, and
  1263. run out of memory.  This fix pertains to both -pix and -xpm mode.
  1264.  
  1265. Patch to hopefully double death problem/core dumps with NOT_PERMADEATH
  1266. mode.
  1267.  
  1268. Changed the size of the temporary string that is used when loading
  1269. messages.  For a few very long messages, 1024 bytes was not enought.
  1270.  
  1271. Patches put in Crossedit to allow for XPM mode.  From Petri Heinil.
  1272.  
  1273. Cleaned up the code for look window.  Now, everything agrees (ie,
  1274. when you click on something in the look window, it is actually
  1275. that object.)  Likewise, invisible objects are not displayed
  1276. anywhere.  This should also fix a bug of not being able to enter
  1277. some building by clicking the middle mouse button on them.
  1278.  
  1279. Added help file for pickup.  Explains the 8 basic pickup modes
  1280. plus the value-density pickup mode.
  1281.  
  1282. Detect magic will detect magic on all items in a stack, not just the
  1283. top object.
  1284.  
  1285. Spells fixes (From Peter Mardahl):
  1286.   1)  Identify modified to identify items on the ground if inventory is
  1287.         identified.
  1288.   2)  Detect magic spell finds magical runes and makes them more visible
  1289.   3)  AT_CHAOS and AT_COUNTERSPELL reimplemented so that they are not
  1290.         treated as special cases by the move_cone function
  1291.   4)  Magical walls created by spells (firewall, frostwall, ....) are
  1292.         fixed
  1293.  
  1294. If a map is reset, that map is then removed from the list of map objects
  1295. (what you see when you type 'maps ).  This way, the 'maps commands only
  1296. displays maps that are reasonably active.  This change should also save a
  1297. little memory.
  1298.  
  1299. make depend now descends into crossedit/Cnv to depend there.
  1300.  
  1301. Changed some of the colors in the xutil.c file.  This is so that it uses
  1302. the same colors as the official colors for XPM files.  It would have been
  1303. better to make those colors part of the official XPM colors to start
  1304. with, but it is a bit late to do that now.  The change of the xutil.c file
  1305. was made so that crossfire would not use quite as many entries in
  1306. the colormap.  The change in colors should be quite minor.
  1307.  
  1308. Two new pickup modes added - one picks up all money and gems, the other
  1309. all magical items.
  1310.  
  1311. Removed a lot of dead code from the various header files.  removed
  1312. hiscore.h from distribution (wasn't declaring anything that was not
  1313. being declared elsewhere.)
  1314.  
  1315.  
  1316. ------------------------------------------------------------------------------
  1317. Changes from Crossfire 0.90.3 to 0.90.4:
  1318.  
  1319. Many more XPM images now properly colored.  NOTE TO COLORERS: A few minor
  1320. changes have been to the xpm.template file (palegreen has been replaced with
  1321. green3, and a more medium orange has been added.)  I replaced palegreen
  1322. because it was very close to the 'green' color already present.  And a
  1323. medium green was lacking.  A medium orange was also lacking, so I added one
  1324. in.
  1325.  
  1326. New pickup modes, that can be based on value density (from
  1327. Peter Mardahl <peterm@soda.berkeley.edu>)
  1328.  
  1329. Spells now have a casting time. (From Matthew Zeher <matt@cs.odu.edu>)
  1330.  
  1331. Added libproto1.h file.  This will be used for function prototypes
  1332. are affected by certain settings (ie, SPEED_GAME).  This way, people
  1333. should not need to run 'make proto'
  1334.  
  1335. New XPM loading method.  Creates montage of the xpm files,
  1336. so that not as many calls to XPM are needed.  This has reduced loading
  1337. time to about 30% of what it was before.  Note: This done mean it takes
  1338. some more memory at start up, as the montage has to be stored 
  1339. temporarily.
  1340.  
  1341. Changed charisma bonuses.  At 30 charisma, it will no longer be possible to
  1342. buy an item, and then sell it for more than you bought it for.
  1343.  
  1344. Graphic exposures turned off on the GC's that are used in the game window.
  1345. Should improve performance.
  1346.  
  1347. When a raise stat spell ends, the proper message (ie, You look ugly, you
  1348. feel less intelligent, etc) will now be printed out.
  1349.  
  1350. If player NOT_PERMADEATH mode, and you die, a stat will only be decreased
  1351. one.  Before, that stat was decreased one, and the max stat was set to that
  1352. value.  So if the player was poisoned, or a stat was lowered due to some
  1353. other reason, that loss would become permanent.  Now, both the stat and
  1354. orig_stat only gets decreased by one.
  1355.  
  1356. invoke.c removed, cast_spell modified to handle what invoke.c did.
  1357.  
  1358. Keep old shoot type if reading a scroll, instead of it being set to none.
  1359.  
  1360. Raise stats spells should be progressively more costly (From Peter Mardahl)
  1361.  
  1362. Should now be able to handle broken pipes without problem (ie, telnet
  1363. session closing unexpectedly).  Made it so that listen level 0 on a socket
  1364. means that draw_all_sockets will not write to that socket.  Crossclient uses
  1365. this so that it does not get unexpected messages, and thinks that it failed.
  1366.  
  1367. Added 'set font' option.  This basically unsets color pixmaps or xpm mode.
  1368. If crossclient was run without -xpm or -pix mode, it will send this command
  1369. to use fonts.  What this means is that set (font,pix,xpm) should set that
  1370. display mode.  Before, the display selection it defaulted to for crossclient
  1371. seemed unreliable at best.
  1372.  
  1373. Fixed memory allocation problem in commands.c (it was writing to more
  1374. bytes than it had allocated)
  1375.  
  1376. Draw message window almost complete re-written.  In an effort to cut
  1377. down on flashing of the the status bars. ( Niilo Neuvo <anipa@guru.magic.fi>)
  1378.  
  1379. More bug fixes for spells (from Peter Mardahl)
  1380.  
  1381. Fixed some bugs for compiling on the Alpha running OSF/1 1.3
  1382.  
  1383. ------------------------------------------------------------------------------
  1384. Changes from Crossfire 0.90.2 to 0.90.3:
  1385.  
  1386. Added -xpm command line option to crossclient.
  1387.  
  1388. All spells should not be handled in the switch statement in spells.c
  1389.  
  1390. Let players buy zero value items from shop.  This really shouldn't be a
  1391. problem, the only zero value items of any use might be wands with very
  1392. few charges.  If someone wants to buy poison or cursed items, they should
  1393. be able to.
  1394.  
  1395. Fix spelling error of command line argument 'detatch'.  It is now
  1396. spelled properly (detach).
  1397.  
  1398. Change draw_color_pix in server/xio.c.  It now draws the images to an
  1399. intermediate pixmap, and then draws that to the screen.  May or may not be
  1400. quicker (XSetClipOrigin only needs to be set once), but it does prevent
  1401. flicker.  Also add two more GC's to the player struct, to make these
  1402. operations faster.
  1403.  
  1404. Unless XPM_PIX is defined, draw_color_pix will note be compiled in the
  1405. code.
  1406.  
  1407. Fixes to make it compile on both Solaris and NeXT machines (hopefully)
  1408.  
  1409. Removed PLAYER_COLOR #ifdefs and lines they control out of login.c.  Those
  1410. were not needed any more.
  1411.  
  1412. Added 'mapinfo' command to valid input commands.
  1413.  
  1414. Only have crossfire display -m as a valid command if it was compiled
  1415. with DUMP_SWITCHES set.
  1416.  
  1417. Changed install procedure to only copy those files necessary to playing
  1418. into lib.  Also, don't install obsolete scripts into the bin directory
  1419. when installing.
  1420. -----------------------------------------------------------------------------
  1421. Changes from Crossfire 0.90.1 to 0.90.2:
  1422.  
  1423. Cleaned up the display from 'maps.  Now things line up nicely.  It
  1424. doesn't print the name anymore, and truncates the path at 18 characters.
  1425. But this doesn't make a difference for most maps, and now you can actually
  1426. see what variables are set to what.
  1427.  
  1428. Experience requirements changed.  Initial values from Peter, but I changed
  1429. them to be more round numbers.
  1430.  
  1431. Change targets in server and crossclient from ComplexProgramTarget
  1432. to AllTarget, DependTarget, and NormalProgramTarget.  This is because
  1433. ComplexProgramTarget expects man pages in those directories, which do
  1434. not exist.
  1435.  
  1436. Moved data initialization out of treasure.h and into common/treasure.h.
  1437. In theory, no data initialization should be done in the .h files, it should
  1438. all be done in the .c files, with the .h files declaring the appropriate
  1439. externs.  Likewise, no .c files should have extern's for other data
  1440. functions, they should include the appropriate .h file to get those
  1441. externs declared.  This would fix the problem of having to go through
  1442. the various .c files whenever one of the data structures change, to update
  1443. all the externs made to it.  Since the compiler will check to make sure that
  1444. the extern in the .h file and the actual declaration in the .c file are
  1445. the same, it prevents errors of mismatched declarations (ie, having
  1446. something like char s[40][20], which at later point gets to
  1447. char *s[40], but some files still think it is supposed to be s[40][20].)
  1448.  
  1449. Changed doc/Imakefile so that make install.man will actually install
  1450. the man pages.
  1451.  
  1452. Characters that dies who were poisoned should have the poisoning
  1453. removed.
  1454.  
  1455. Changes from the Berkeley Folks:
  1456. What we've done that's in this server code that I know of:
  1457.  
  1458. --level dependency added to many spells.
  1459.  
  1460. --level dependency tunable on the fly by editing the spell_params
  1461.   in the 'lib' dir and using the dm command 'spellreset'  spellpoints
  1462.   and spell level are also changeable on the fly.
  1463.  
  1464. --many new spells added
  1465. --protection spells can now superimpose, as can gain stat spells.
  1466.   repeated applications of protective or stat spells yield diminishing
  1467.   returns.
  1468.  
  1469. --runes added--an implementation of magical traps.  any spell may
  1470.   go in a rune.  Read the documentation.
  1471.  
  1472. --new spell interface.  invoke <spell> invokes that spell immediately.  Some
  1473. spells can take parameters now.  invoke magic rune <spell>
  1474. will store <spell> in a magic rune.  invoke  <spell> will not set the
  1475. range spell.  cast and prepare are synonymous.
  1476.  
  1477. --Certain spells cannot be set as range spells now--less than 10 of these.
  1478. These are spells which no one would want to use more than once in a while,
  1479. like magic map.
  1480.  
  1481. --A hack to object.c in common dir which makes objects created by objects
  1482. with owners owned by the creating object's owner.  (This allows players
  1483. to get credit for a kill with the meteor swarm spell, which creates a
  1484. 'swarm' object, which in turn creates the meteor objects.)
  1485. -- End of Berkeley additions.
  1486.  
  1487. New maps and archetypes added.
  1488.  
  1489. Crossedit can now load maps that are compressed.
  1490.  
  1491. Add Solaris 2.x compile support.
  1492.  
  1493. Now prints out what the scroll name was that turned to dust.
  1494.  
  1495. Minor artifact changes (ring of ice is blue, ring of fire is red)
  1496.  
  1497. Horn range weapon now works properly, via using the + and - keys.
  1498.  
  1499. New input method (From Jari Vanhala <jam@modeemi.cs.tut.fi>).  Looks like
  1500. it should now be possible to define keys to do most every command.  Made
  1501. a few minor changes to default key file to make the present set up
  1502. act like the previous one.
  1503.  
  1504. Fixed triggers and magic mouth.  These devices will now open gates
  1505. as would be expected.  The problem was that the opening routine
  1506. expects to see the op->value of these to be one, in order to open the
  1507. gate or whatever.  Changed routines to toggle value between 0 and 1.
  1508. Note: As I understand, trigger handles return to their original state, but
  1509. keep the same value.  That is, you pull the trigger handle, the handle returns
  1510. to its original position, but gate opens.  Pull handle again, handle returns
  1511. to same position, but gate now closes.  Or at least that is how I implemented
  1512. the devices.
  1513.  
  1514. Make some more changes to the is_magical routine.  Hopefully, it will now
  1515. detect all rings and amulets that are magical.  Also, it should not
  1516. detect monsters (or any living object) as magical.
  1517.  
  1518. Fixed bug with Color Pixmaps (XPM).  Would try to free the pl->pixmaps
  1519. area twice, causing core dump.  Looks like the same thing should have
  1520. happened when using bitmaps also.  In any case, only one free(pl->pixmaps)
  1521. is now performed.
  1522.  
  1523. Bug fixed with XPM code, in which 'floors' would appear to be
  1524. carried around with the player.  This is because the players pixmap did
  1525. not change, and hence, it did not update that square.  Now fixed.
  1526.  
  1527. Random encounter bug might now be fixed (patches from Frank)
  1528.  
  1529. New FLAG method used.  flags in the object structure is now an array,
  1530. and SET_FLAG, CLEAR_FLAG and QUERY_FLAG functions are now used.  This reduced
  1531. a lot of code in common/loader.c
  1532.  
  1533.  Fixed bug in common/object.c in expand_objects function.  Looks like
  1534. braces were missing from for statement, so the the prev and flag fields of
  1535. the new objects were not being set properly.
  1536.  
  1537.  Fixed bug that could cause core dump if trying to print map message when
  1538. no message existed. (From Tero Haatanen <Tero.Haatanen@lut.fi>)
  1539.  
  1540.  Starting character will have uncursed, undamned and identified items
  1541. at the start of the game. (From Tero Haatanen <Tero.Haatanen@lut.fi>)
  1542.  
  1543. -----------------------------------------------------------------------------
  1544. Changes from Crossfire 0.90.0 to 0.90.1:
  1545.  
  1546.  Crossedit 0.7 was merged in with the 0.90.0 source.  This once again creates
  1547. a common distribution.
  1548.  
  1549.  I tried to retain the best features of both programs.  This means that
  1550. the artifact code, and cursed/uncursed items (from CF 0.90.0) remain.
  1551. But I also used the filepaths for fonts, elimination of omaps for
  1552. internals use, and creation of partially processed bitmap file for
  1553. bitmap reading.
  1554.  
  1555.  The general patch method was to keep the cf 0.90.0, and create a diff
  1556. file for crossedit 0.7 from crossfire 0.89.3.  These patches were then
  1557. applied.  Many had to be implemented by hand.
  1558.  
  1559.  There are some exceptions.  The crossedit program is almost the exact
  1560. same thing as in the crossedit 0.7 distribution.  I made a few minor changes
  1561. to clean up compiling, but otherwise, no serious changes were made.
  1562.  
  1563.  The archetypes (lib/arch) structure was also taken from crossedit 0.7, as
  1564. well as most of the archetypes themselves.  I think the breakdown makes
  1565. things much easier to handle for changes or improvements.  NOTE: it is
  1566. likely that directory (lib/arch) will not be in the standard distribution,
  1567. but will instead be a separate file (to keep the size down).  The various
  1568. files (archetypes, bmaps, font, etc.) will be created for the distribution.
  1569. All new archetypes from cf 0.90.0 were merged into the structure, as well
  1570. as a few minor changes in the old archetypes I noticed.
  1571.  
  1572.  The maps are from the crossfire 0.90.0-a-maps distribution.  A few
  1573. simple programs (in lib/adm) were used convert them to use fontpaths
  1574. and to change some monster names that conflicted with character classes.
  1575. Note: Because in the old format, a 'food' field was used to determine the
  1576. map to link to, it is possible some of these fields were changed when
  1577. they were not supposed to be.  This is because some other archetypes
  1578. (altars for one) also use the food field.  If you notice any converted
  1579. by mistake, please let me know.
  1580.  
  1581.  A few minor memory leaks and other patches have also been applied.
  1582.  
  1583.  Other specific changes to this version:
  1584. 'set' now gives better help message (like what can be set.)
  1585. XPM code added.
  1586. Fixed bug in 'who', which would cause a core dump if done when
  1587.     another playing was still creating their character.
  1588.     'who' also display the map path of the other players, and not
  1589.     the map name.  Map names seldom seem to be set.
  1590. The crossfire.cfb and crossfire.pix files (in lib) can be compressed.
  1591. Fixed bug that caused core dumps when pet monsters were summoned.
  1592. If restoring a saved game, and the map it was saved on does not exist,
  1593.     start them on the standard starting level.
  1594. Added option in config.h, that allows full ring and amulet descriptions
  1595.     to be printed in inventory and look window.
  1596. Hopefully fixed bug which caused game to dump core when player died,
  1597.     if NOT_PERMADEATH was set on.
  1598. Add flag HAS_MAGIC, and use that for the detect magic spell.  This way,
  1599.     artifacts that have no magic, will still be shown as magical.
  1600.     So will rings that change abilities, etc.  Doesn't work
  1601.     quite perfectly, but seems to work as well as the old method.
  1602. Fixed bug so that if it can not find a map, it just prints that
  1603.     that exit is closed, instead of panicing.
  1604. Have it re-draw the look window when you middle click on something (ie
  1605.     apply) in that window.  This fixes a bug with bags/sacks, of it
  1606.     not updating when an item is used directly from a sack.
  1607.  
  1608.  Mark Wedel (mwedel@pyramid.com)
  1609.